This invention relates to test software, and more particularly to a graphical-user-interface (GUI) for testing network devices using high-level networking commands.
Electronic systems often carry critical data and thus need to be tested prior to installation and use. Networking equipment or devices such as switches, routers, bridges, etc. are constructed from integrated circuit (IC) chips and boards that are themselves tested prior to installation in a chassis of a networking device. However, the final network device also needs testing before shipment to the end user.
Network devices can be tested by driving binary signals to device inputs, and comparing device outputs to expected outputs, much as IC's are tested. FIG. 1 shows testing of a network device using binary test vectors. A test machine includes input drivers 12 that drive binary signals onto the inputs to network device under test 10. The binary signals are read from stimuli file 16, which is composed ahead of time by a test engineer. The outputs from network device under test 10 are compared to expected outputs in expected outputs file 18 by comparator 14. When an output mis-matches the expected output, comparator 14 signals a failure of network device under test 10.
Generating stimuli file 16 and expected outputs file 18 can be tedious and time-consuming. For IC testing and design, various test software programs are available to ease the process of developing the binary input and results files. However, these programs generally operate with low-level binary signals, such as 1's and 0's, or buses of many such binary signals.
Networking devices are usually quite complex. To simplify understanding, such devices can be considered to operate on higher-level packets of data, and respond to higher-level commands, such as commands embedded inside packets. Various higher-level languages have been developed to aid in testing of network devices. Such languages include TCL/TK. TCL is a Tool Command Language, while TK is Toolkit with a graphical user interface.
Network devices are often managed after installation in an operating network. FIG. 2 shows management of network devices installed in an operating network. A network administrator operates a network management program on console 20. Console 20 is coupled to network devices 22, 24, 26 that can include network switches, servers, and routers, as well as other kinds of IP-addressable network devices. These network devices 22, 24, 26 are connected together and to other devices (not shown) by network cables or lines, or perhaps by wireless or other links. Data is passed over these links in packet form. Packets pass over these links among network devices 22, 24, 26 to route these packets from their sources to their destinations on the network or on external networks such as the Internet.
Network devices 22, 24, 26 can be designed to ease management by including management agents 23, 25, 27 inside the device. Management agents 23, 25, 27 each include a management information database (MIB) that includes operating statistics of that device, such as error counters of dropped packets, timers, traffic counters, even temperature and voltage readings. Management software on console 20 can periodically read such operating statistics from agents 23, 25, 27 and signal an alarm to the network administrator when a reading is outside of a desired range, such as when a temperature rises above a limit (perhaps due to a broken fan or a covered vent), or traffic drops below a limit or errors rise above a limit (broken link cable or upstream router down).
Since network devices 22, 24, 26 may be made by different manufacturers, a standard has been developed for such management agents and management information databases. The Simple Networking Management Protocol (SNMP) is a protocol used for network management of various devices. SNMP also includes a set of commands which can be understood by the devices. High-level commands (SNMP commands) can be sent from console 20 to agents 23, 25, 27. These SNMP commands include commands to get (read) a particular statistic from a device, to set operating values or limits in a router/switch, and to trap or perform some task, such as notify the console when a particular event occurs such as a limit being exceeded.
The network administrator can manually enter SNMP commands using a command-line interface (CLI) on console 20, or management software on console 20 (or some other location) can send these commands.
A newly-manufactured network device could be tested prior to shipment by inserting it into a network at the test facility. The test engineer could manually enter SNMP commands from a console to test operating of the network device. These commands could be saved into a script file that is later re-played for each new network device inserted into the test-facility network for testing. However, manual testing can be tedious and prone to errors. Each new network device tested has a different range of network addresses assigned to it, and the script files have to be edited to insert the new network addresses for each network device tested.
What is desired is test software for testing network devices including routers and switches. Test software that accepts high-level commands to test the network device from a test engineer is desired, rather than requiring the test engineer to specify test vectors using low-level binary data. A graphical user interface for such test software is desirable. Networking-equipment test software that accepts high-level network commands such as SNMP commands using a CLI is desired. A test-automation software tool that accepts shell level commands such as SNMP, CLI and Man-Machine-Language (MML) is desired.